synapse a UDP

Otázka od: Martin Nedopil

29. 6. 2004 7:19

Ahoj, mam mensi problem se Synapsi. Chci nabirat data z UDP, ale nejak
nemuzu. Soket otviram takto...
      
sock:= TUDPBlockSocket.Create;
sock.OnStatus:=MySockOnStatus;
sock.OnReadFilter:=MySockReadFilter;
sock.CreateSocket;
sock.Bind('192.168.0.77', '7373');

no a kdyz uz se mi to povede, vidim (na Keriu) ze mi tam data tecou, ale
do MySockOnStatus ani MySockReadFilter mi to nespadne.

Vi nekdo kde udelali soudruzi z NDR chybu?

Martin



Odpovedá: Lukas Gebauer

29. 6. 2004 7:39

> Ahoj, mam mensi problem se Synapsi. Chci nabirat data z UDP, ale nejak
> nemuzu. Soket otviram takto...
>
> sock:= TUDPBlockSocket.Create;
> sock.OnStatus:=MySockOnStatus;
> sock.OnReadFilter:=MySockReadFilter;
> sock.CreateSocket;
> sock.Bind('192.168.0.77', '7373');
>
> no a kdyz uz se mi to povede, vidim (na Keriu) ze mi tam data tecou,
> ale do MySockOnStatus ani MySockReadFilter mi to nespadne.
>
> Vi nekdo kde udelali soudruzi z NDR chybu?

Ten soudruh jsi v tomto pripade ty.   Chyba je v tom, ze ti uniklo,
ze Synapse je synchronni knihovna, tedy ze zadny event na oznamovani
prichopzich dat nema! ostatne i v dokumentaci je psano, ze treba
event OnStatus slouzi na monitorovnai komunikace... ne na vlastni
komunikaci!

kazdopadne je to napsane i ve FAQ... viz.
http://www.synapse.ararat.cz/wiki/index.php?page=FAQ a otazka:
"Where
Is The Event For Reading Data?"

Pokud chces prijimat UDP packety a nevis, kdy packety prijdou (tedy
UDP server), podivej se treba na demo SNMP agenta. Ta mas krasny
priklad, jak se to dela.


--
Lukas Gebauer.

E-mail: gebauerl@mlp.cz
http://www.ararat.cz/synapse/ - Ararat Synapse - TCP/IP Lib.